Strumenti per la firma e la verifica del codice

Gli strumenti che Φ possibile utilizzare per verificare il codice e apporvi la firma sono MakeCert, Cert2SPC e SignCode. Tali strumenti sono disponibili nella cartella \Programmi\IEAK\Reskit\Tools del Resource Kit di IEAK. Ulteriori risorse vengono fornite anche con l'SDK del client Internet.

MakeCert

Utilizzare questo programma di verifica per generare un certificato X.509. MakeCert esegue le seguenti operazioni:

  1. Crea una coppia di chiavi, delle quali una pubblica e una privata, per l'apposizione delle firme digitali e la associa al nome scelto dall'utente.
  2. Associa la coppia di chiavi al nome di un autore scelto dall'utente.
  3. Crea un certificato X.509, su cui come firma viene apposta la chiave della fonte o una diversa chiave specificata dall'utente, e collega il nome di quest'ultimo alla parte pubblica della coppia di chiavi. Il certificato viene quindi salvato in un file, nell'archivio di certificati del sistema o in entrambe le posizioni.

La sintassi di MakeCert Φ la seguente:

MakeCert [opzioni di base | opzioni avanzate] fileDiOutput

In MakeCert sono disponibili alcune opzioni di base e alcune opzioni avanzate. Le opzioni di base sono quelle pi∙ comunemente utilizzate per creare un certificato, le opzioni avanzate consentono invece una maggiore flessibilitα. Le opzioni di MakeCert si suddividono inoltre in tre gruppi in base al settore di applicazione:

  1. Opzioni applicabili alla tecnologia per i file SPC, le chiavi private e gli archivi di certificati
  2. Opzioni specifiche della tecnologia per i file SPC e le chiavi private
  3. Opzioni specifiche della tecnologia per gli archivi di certificati

Le opzioni del secondo e del terzo gruppo non possono essere utilizzate in combinazione, ad eccezione dell'opzione –ic.

Esempi di utilizzo di MakeCert con Internet Explorer 4.0

Gli esempi riportati di seguito illustrano come creare dei certificati con MakeCert utilizzando le opzioni di Internet Explorer 4.0.

Esempio 1

In questo esempio viene mostrato come generare un certificato rilasciato dalla fonte predefinita e salvarlo in un file.

MakeCert mioNuovo.cer 

Esempio 2

In questo esempio viene mostrato come generare un certificato rilasciato dalla fonte predefinita e salvarlo in un archivio.

MakeCert -ss mioNuovoArchivio 

Esempio 3

In questo esempio viene mostrato come generare un certificato rilasciato dalla fonte predefinita, creare un file .pvk e salvare il certificato sia in un file che in un archivio.

MakeCert -sv mioNuovo.pvk -ss mioNuovoArchivio mioNuovo.cer 

Esempio 4

In questo esempio viene mostrato come generare un certificato rilasciato dalla fonte principale, creare un contenitore di chiavi e salvare il certificato sia in un file che in un archivio.

MakeCert -sk miaNuovaChiave -ss mioNuovoArchivio mioNuovo.cer 

Esempio 5

In questo esempio viene mostrato come generare un certificato utilizzando la fonte principale e salvarlo in un archivio. Nella seconda parte viene mostrato come creare un ulteriore certificato utilizzando quello appena generato e salvarlo in un archivio diverso dal primo.

MakeCert -sk miaNuovaChiave -ss mioNuovoArchivio
MakeCert -is mioNuovoArchivio -ss altroArchivio 

Esempio 6

In questo esempio viene mostrato come generare un certificato utilizzando la fonte principale e salvarlo nell'archivio personale. Nella seconda parte viene mostrato come creare un ulteriore certificato utilizzando quello appena generato e identificando il primo certificato con il nome comune poichΘ l'archivio personale contiene pi∙ certificati.

MakeCert -sk miaNuovaChiave -n "CN=XXZZYY" -ss personale
MakeCert -is personale -in "XXZZYY" -ss altroArchivio 

Esempio 7

In questo esempio viene mostrato come generare un certificato utilizzando la fonte predefinita e salvarlo sia nell'archivio personale che in un file. Nella seconda parte viene mostrato come creare un ulteriore certificato utilizzando il certificato mioNuovo appena generato e identificando il primo con il nome di file poichΘ l'archivio personale contiene pi∙ certificati.

MakeCert -sk miaNuovaChiave -n "CN=XXZZYY" -ss personale mioNuovo.cer
MakeCert -is personale -ic mioNuovo.cer -ss altroArchivio 

Esempio 8

In questo esempio viene mostrato come generare un certificato con firma automatica denominato miaNuovaFonte utilizzando la fonte predefinita. Nella seconda parte viene mostrato come utilizzare SignCode con il certificato per apporre la firma a un file.

MakeCert -sk miaNuovaChiaveFonte -r -ss miaNuovaFonte
SignCode -s miaNuovaFonte mioControllo.exe 

Esempio 9

In questo esempio viene mostrato come generare un certificato con firma automatica denominato miaNuovaFonte utilizzando la fonte predefinita. Nella seconda e nella terza parte viene mostrato come salvare miaNuovaFonte in un archivio di certificati del sistema ac, creare un certificato da miaNuovaFonte e apporre la firma a del codice utilizzando il certificato.

Quando SignCode utilizza un certificato memorizzato in un archivio per apporre la firma, viene generata automaticamente anche una catena di verifiche dal certificato di autenticazione a una fonte. Tutti i certificati coinvolti nella catena di verifiche devono essere presenti in uno qualsiasi degli archivi personale, ac, spc o fonte. In questo esempio miaNuovaFonte si trova nell'archivio ac.

MakeCert -sk miaNuovaChiaveFonte -r -ss ca miaNuovaFonte.cer
MakeCert -is ca -ic miaNuovaFonte.cer -ss miaNuovaFirma 
SignCode -s miaNuovaFirma mioControllo.exe

Cert2SPC

Dopo aver generato un certificato, Φ possibile utilizzare il programma Cert2SPC per creare un certificato SPC (Software Publisher Certificate). Questo programma riunisce pi∙ certificati X.509 in un oggetto dati firmati PKCS #7. Si noti che questo programma Φ utilizzabile solo a scopo di verifica. Per ottenere un certificato SPC valido occorre rivolgersi a un'Autoritα di certificazione.

La sintassi di Cert2SPC Φ la seguente:

Cert2SPC cert1.cer cert2.cer. . .certN.cer output.spc

dove:

Di seguito Φ riportato un esempio.

Cert2SPC MioCert.cer MioCert.spc 

In questo modo si inserisce un certificato X.509, ovvero MioCert.cer, nell'SPC PKCS #7 denominato MioCert.spc.

SignCode

L'ultimo passaggio della procedura consiste nell'apporre effettivamente la firma al file utilizzando SignCode. Questo programma esegue le seguenti operazioni:

  1. Crea una versione crittografata del file.
  2. Appone la firma a questa versione del file utilizzando la chiave privata dell'utente.
  3. Copia i certificati X.509 dall'SPC in un nuovo oggetto dati firmati PKCS #7. L'oggetto PKCS #7 contiene i numeri seriali e gli autori dei certificati utilizzati per creare la firma, i certificati e le informazioni relative alla versione firmata.
  4. Incorpora l'oggetto nel file.
  5. Aggiunge la data e l'ora al file. Sebbene questa operazione sia facoltativa, si consiglia di aggiungere sempre queste informazioni durante la firma di un file. SignCode, tuttavia, Φ anche in grado di aggiungere la data e l'ora a un file firmato in precedenza, con le limitazioni illustrate di seguito alla tabella con le opzioni.

La sintassi di SignCode Φ la seguente:

SignCode [opzioni] [nomeFile]

dove: